package com.vichat.gps.controller;

import com.vichat.gps.entity.LocationData;

import java.util.ArrayList;
import java.util.List;

public class GpsAppCache {
    final List<LocationData> m_list = new ArrayList<LocationData>(10000);


    public GpsAppCache() {
        System.out.println("I am started.");
    }



    public   void put(LocationData locData) {
        synchronized (m_list) {
           m_list.add(locData);
        }
    }


    /**
     * ȡ����������һ���Ĺ������󣬲��ӻ�������ɾ��
     *
     * @return
     */
    public LocationData get() {
        synchronized (m_list) {
            if (m_list.size() > 0) {
                return m_list.remove(m_list.size() - 1);
            }
            return null;
        }
    }

    public List<LocationData> get(int index) {
        synchronized (m_list) {
            List<LocationData> list = new ArrayList<LocationData>();;
            if (m_list.size() >= index) {
                for (int i = 1; i <= index; i++) {
                    list.add(m_list.remove(m_list.size() - 1));
                }
            } else {
                if (m_list.size() > 0) {
                    int length = m_list.size();
                    for (int i = 1; i <= length; i++) {
                        list.add(m_list.remove(m_list.size() - 1));
                    }
                }
            }
            return list;
        }
    }

    public int size() {
        synchronized (m_list) {
            return m_list.size();
        }
    }

    public void clear() {
        m_list.clear();
    }
}
